package leetcode61_70;

import org.junit.Test;

/**
 * @author shhjiang_001
 * @create 2020-06-21 14:25
 */

       /* 实现 int sqrt(int x) 函数。

        计算并返回 x 的平方根，其中 x 是非负整数。

        由于返回类型是整数，结果只保留整数的部分，小数部分将被舍去。

        示例 1:

        输入: 4
        输出: 2*/
public class Solution69 {
    public int mySqrt(int x) {
        int le = 1,ri = x,ans = -1;
        while (le < ri){
            if(le+1==ri) return le;
            int mid = (le + ri)/2;
            if (mid*mid == x){
                return mid;
            }else if (mid*mid < x){
                le = mid;
            }else {
                ri = mid;
            }
        }
        return ans;
    }
    @Test
    public void test(){
        System.out.println(mySqrt(2147395599));
    }
}
